/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package adsreis.com.Controls;

import adsreis.com.Beans.PerdasBean;
import adsreis.com.acessobd.AcessoMySql;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Pauroenriki
 */
public class PerdasControl {
    PreparedStatement pstm;
    ResultSet rs;
    String cadastraPerda = "INSERT INTO PERDAS (CODPERDA, IDFUNCIONARIO, DATAPERDA) VALUES(?, ?, ?)";
    String buscaUltimoCodigo = "SELECT MAX(CODPERDA) AS CODPERDA FROM PERDAS";
    String excluiProduto = "DELETE FROM PRODUTOS WHERE CODPRODUTO = ?";
    Integer codperda;
    Integer duplicidade;
    String consultaPerdas = "SELECT PERDAS.CODPERDA, PERDAS.IDFUNCIONARIO, FUNCIONARIOS.NOME, PERDAS.DATAPERDA FROM PERDAS, FUNCIONARIOS WHERE PERDAS.IDFUNCIONARIO = CODFUNCIONARIO AND PERDAS.DATAPERDA BETWEEN ? AND ?";
    String consultaItens = "SELECT PERDAS.CODPERDA, PERDAS.IDPRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.VLRVENDA, PERDAS.QTDPERDA FROM PERDAS, PRODUTOS WHERE PERDAS.CODPERDA = ? AND PERDAS.IDPRODUTO = PRODUTOS.CODPRODUTO";
    String deletaperda = "DELETE FROM PERDAS WHERE CODPERDA = ?";
    
     public void excluirPerda(int codperda){
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(deletaperda); 
           pstm.setInt(1, codperda);
           pstm.executeUpdate();
           mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
    }
     public List<PerdasBean> listarPerdas(Date dataInicial, Date dataFinal){
        try {
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(consultaPerdas);
            pstm.setDate(1, dataInicial);
            pstm.setDate(2, dataFinal);
            rs = pstm.executeQuery();
            List<PerdasBean> perda = new ArrayList<PerdasBean>();
            
            //duplicidade = 1;
            codperda = 0;
            
            while (rs.next()){
                
                
                PerdasBean pb = new PerdasBean();
                duplicidade = rs.getInt("perdas.codperda");
                if(duplicidade != codperda){
                 
                
                
                pb.setCodPerda(rs.getInt("perdas.codperda"));
                pb.setIDFuncionario(rs.getInt("perdas.idfuncionario"));
                pb.setNomeFunc(rs.getString("funcionarios.nome"));
                pb.setDataPerda(rs.getDate("perdas.dataperda"));
                perda.add(pb);
                codperda = rs.getInt("perdas.codperda");
                
                } else{
                       
                
                }
                
            }
            mysql.desconectar();
            return perda;
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return null;
    }
     
      /* public void removerProduto(int codProduto){
        try{
            AcessoMySql mysql = new AcessoMySql();
           pstm = mysql.conectar().prepareStatement(excluiProduto); 
           pstm.setInt(1, codProduto);
           pstm.executeUpdate();
           mysql.desconectar();
        }catch(Exception e){
            e.printStackTrace();
        }
    }*/
    
    public int buscarCodigoUltimaPerda(){
        try {
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(buscaUltimoCodigo);
            rs = pstm.executeQuery();
            if (rs.last()){
                return rs.getInt("codperda");
            }
            mysql.desconectar();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return 0;
    }
     
      public void cadastrarPerda(PerdasBean perda){
        try {
            AcessoMySql mysql = new AcessoMySql();
            pstm = mysql.conectar().prepareStatement(cadastraPerda);
            pstm.setInt(1, perda.getCodPerda());
            pstm.setInt(2, perda.getIDFuncionario());
            pstm.setDate(3, perda.getDataPerda());
            pstm.executeUpdate();
            mysql.desconectar();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
     
     
}
